home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE18 / SURVIVE / FMMAIN.PAS < prev    next >
Pascal/Delphi Source File  |  1996-12-06  |  4KB  |  130 lines

  1. unit fmMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, Grids, DBGrids, DB,
  8.   DBTables, ComCtrls;
  9.  
  10. type
  11.   TfrmMain = class(TForm)
  12.     mnuMain: TMainMenu;
  13.     ApplicationLoginItem: TMenuItem;
  14.     ApplicationLogoutItem: TMenuItem;
  15.     ApplicationChangePasswordItem: TMenuItem;
  16.     ApplicationExitItem: TMenuItem;
  17.     StatusLine: TStatusBar;
  18.     ApplicationMenu: TMenuItem;
  19.     ExitMenu: TMenuItem;
  20.     dbAppMain: TDatabase;
  21.     tblAuditTrail: TTable;
  22.     dsAuditTrail: TDataSource;
  23.     grdAuditTrail: TDBGrid;
  24.     procedure ExitMenuClick(Sender: TObject);
  25.     procedure ApplicationLoginItemClick(Sender: TObject);
  26.     procedure FormCreate(Sender: TObject);
  27.     procedure ApplicationLogoutItemClick(Sender: TObject);
  28.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  29.     procedure ApplicationChangePasswordItemClick(Sender: TObject);
  30.   public
  31.     procedure LoginManagerLogin(Sender: TObject; Username: string; Password: string);
  32.     procedure LoginManagerLogout(Sender: TObject);
  33.     procedure LoginManagerBadLogin(Sender: TObject);
  34.     procedure LoginManagerPasswordExpired(Sender: TObject; var Cancel: Boolean);
  35.   end;
  36.  
  37. var
  38.   frmMain: TfrmMain;
  39.  
  40. implementation
  41.  
  42. uses
  43.  fmLogin, fmPasswd, Login;
  44.  
  45. {$R *.DFM}
  46.  
  47. procedure TfrmMain.LoginManagerLogin(Sender: TObject; Username: string; Password: string);
  48. begin
  49.   StatusLine.Panels[0].Text := 'Username: ' + LoginManager.Username;
  50.   StatusLine.Panels[1].Text := LoginManager.UserFullName;
  51.   StatusLine.Panels[2].Text := 'Connected to ' +
  52.     LoginManager.ServerName + '\' + LoginManager.DatabaseName;
  53.  
  54.   tblAuditTrail.Open;
  55.   grdAuditTrail.Visible := True;
  56.   ApplicationLogoutItem.Enabled := True;
  57.   ApplicationChangePasswordItem.Enabled := True;
  58. end;
  59.  
  60. procedure TfrmMain.LoginManagerLogout(Sender: TObject);
  61. begin
  62.   StatusLine.Panels[0].Text := 'No User';
  63.   StatusLine.Panels[1].Text := '';
  64.   StatusLine.Panels[2].Text := 'Not Connected';
  65.   StatusLine.Refresh;
  66.  
  67.   ApplicationLogoutItem.Enabled := False;
  68.   ApplicationChangePasswordItem.Enabled := False;
  69.   grdAuditTrail.Visible := False;
  70. end;
  71.  
  72. procedure TfrmMain.LoginManagerBadLogin(Sender: TObject);
  73. begin
  74.   ShowMessage('That was a bad login.  Naughty, naughty.');
  75. end;
  76.  
  77. procedure TfrmMain.LoginManagerPasswordExpired(Sender: TObject;
  78.   var Cancel: Boolean);
  79. begin
  80.   Cancel := LaunchPasswordExpiredDialog <> mrOK;
  81. end;
  82.  
  83. procedure TfrmMain.FormCreate(Sender: TObject);
  84. begin
  85.  
  86.   { Register the LoginManager component }
  87.   with LoginManager do
  88.   begin
  89.     ApplicationID := 1;
  90.     MainDB := dbAppMain;
  91. (*    ApplicationDBs.Add(dbPubs);*)
  92.  
  93.     OnLogin           := LoginManagerLogin;
  94.     OnLogout          := LoginManagerLogout;
  95.     OnBadLogin        := LoginManagerBadLogin;
  96.     OnPasswordExpired := LoginManagerPasswordExpired;
  97.   end;
  98. end;
  99.  
  100. procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
  101. begin
  102.   LoginManager.Logout;
  103. end;
  104.  
  105. procedure TfrmMain.ApplicationLoginItemClick(Sender: TObject);
  106. var
  107.   Username, Password, Server, Database: string;
  108. begin
  109.   if LaunchLoginDialog(Username, Password, Server, Database) = mrOK then
  110.     LoginManager.Login(Username, Password, Server, Database);
  111. end;
  112.  
  113. procedure TfrmMain.ApplicationLogoutItemClick(Sender: TObject);
  114. begin
  115.   LoginManager.Logout;
  116. end;
  117.  
  118. procedure TfrmMain.ApplicationChangePasswordItemClick(Sender: TObject);
  119. begin
  120.   LaunchChangePasswordDialog;
  121.   tblAuditTrail.Open;
  122. end;
  123.  
  124. procedure TfrmMain.ExitMenuClick(Sender: TObject);
  125. begin
  126.   Close;
  127. end;
  128.  
  129. end.
  130.